package com.cg.leetcode;

import org.junit.Test;

/**
 * 326. 3的幂
 *
 * @program: LeetCode->LeetCode_326
 * @description: 326. 3的幂
 * @author: cg
 * @create: 2021-08-28 15:13
 **/
public class LeetCode_326 {

    @Test
    public void test326() {
        System.out.println(isPowerOfThree(27));
    }

    /**
     * 给定一个整数，写一个函数来判断它是否是 3 的幂次方。如果是，返回 true ；否则，返回 false 。
     * 整数 n 是 3 的幂次方需满足：存在整数 x 使得 n == 3的x次方
     * <p>
     * 示例 1：
     * 输入：n = 27
     * 输出：true
     * <p>
     * 示例 2：
     * 输入：n = 0
     * 输出：false
     * <p>
     * 示例 3：
     * 输入：n = 9
     * 输出：true
     * <p>
     * 示例 4：
     * 输入：n = 45
     * 输出：false
     * <p>
     * 提示：
     * -2的31次方 <= n <= 2的31次方 - 1
     *
     * @param n
     * @return
     */
    public boolean isPowerOfThree(int n) {
        if (n > 1) {
            while (n % 3 == 0) {
                n /= 3;
            }
        }
        return n == 1;
    }

}
